In wireless communications, many non-realtime data communications utilize the Transport Control Protocol (TCP). TCP typically under utilizes a network's (e.g., a wireless network's) capacity and therefore, network operators have significant interest in optimizing TCP performance over a wireless network. As fourth generation long-term evolution (4G-LTE) wireless networks with high rate of data exchange are widely deployed, and LTE-Advanced and the fifth generation (5G) networks with even higher rate data exchanges are being developed, improving TCP performance over such networks would have a broad and even more significant impact on data application performance.
The Internet protocol (TCP/IP) is currently coping with some of its fundamental limitations by deploying architectural fixes such as mobility, localizing erroneous network environment and caching, which may not be sufficiently flexible or manageable for the next generation communication standards such as the 5G network mentioned above. Another solution has been a Multipath TCP (MPTCP) that establishes multiple TCP connections with multiple addresses instead of establishing a single TCP connection between a content provider (a server, for example) and a receiver (an end user device, for example). This requires the TCP protocol stack to be modified but still runs over the traditional TCP protocol as each of the TCP sub flows is operated by the traditional TCP protocol. Thus, the TCP performance improvement with the single TCP connection remains critical for the end-to-end application performance enhancement.
To provide a reliable data transfer, TCP is often used for end-to-end error control at the transport layer. However, TCP is known to have poor performance over unreliable wireless links, where packet losses due to transmission errors are misinterpreted as indications of network congestion. One of the main concerns is the poor TCP performance over wireless network while wireless data rate is rapidly increasing. Given that TCP requires a receiver acknowledgement for every data byte sent, the network throughput (when using the standard TCP) is inversely related to network latency or round trip time (RTT). Thus, the distance between server and end user becomes a true bottleneck factor in download speeds and hard to circumvent, unless the server is relatively close to the end user. One of the mechanisms that could address the bottleneck factor and thus improve the TCP performance is known as “Split-TCP.”
The Split-TCP mechanism divides an end-to-end TCP connection into multiple TCP connections (i.e. a wired connection segment and a wireless connection segment). The split connection mechanism attempts to separate loss recovery over the wireless connection from that across the wired connection since the wired and wireless domains have distinct characteristics. In this way, the original TCP transmitter is shielded from network problems over the wireless connection (e.g., the bottleneck problem described above), and may improve greatly the end-to-end performance.
However, one major drawback of the Split-TCP is that acknowledgments received by the sender do not necessarily translate into the packets having been successfully received by the actual intended destination (e.g., the end user device). In the event that the intended destination (which may be a mobile device) loses a connection while moving to another cell or the Split-TCP proxy (e.g., a base station) crashes, the actual transmission of data to the destination may fail while it appears to the sender that the transmission has been completed. This violates the end-to-end semantic of the TCP protocol. Since the end-to-end semantic is violated, the transmission of data is no longer reliable and is damaging to the layering structure of the internet protocols. It is clear that the Split-TCP mechanism has a strong potential to be broadly deployed if this critical drawback, the lack of end-to-end semantic problem, is resolved.